package com.vogue.supplymall.payment.dto;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * 多单合并支子订单信息封装参数
 * @author cy
 */
@SuppressWarnings("serial")
public class MultiplePayOrder extends ValidationDTO implements Serializable {
    
    /**
     * 验证必填字段的集合
     */
    public static final List<String> requiredList = Arrays.asList((new String[]{
        "orderid", "storeid", "money", "dismoney"
    }));
    
    /**
     * 可打折金额(必填)
     */
    private Double dismoney = 0.0;
    
    /**
     * 桌号
     */
    private String tablenum;
    
    /**
     * 门店id_开通商龙云吾享门店id(必填)
     */
    private String storeid;
    
    /**
     * 订单id 可以标识出唯一订单的信息串--建议业务系统中的订单编号(必填)
     */
    private String orderid;
    
    /**
     * 价格(必填)
     */
    private Double money;
    
    /**
     * 订单商品列表(必填)
     */
    private List<MultiplePayOrderItem> items;

    /**
     * @return 可打折金额(必填)
     */
    public Double getDismoney() {
        return dismoney;
    }

    /**
     * 设置可打折金额(必填)
     */
    public void setDismoney(Double dismoney) {
        this.dismoney = dismoney;
    }

    /**
     * @return 桌号
     */
    public String getTablenum() {
        return tablenum;
    }

    /**
     * 设置桌号
     */
    public void setTablenum(String tablenum) {
        this.tablenum = tablenum;
    }

    /**
     * @return 门店id_开通商龙云吾享门店id(必填)
     */
    public String getStoreid() {
        return storeid;
    }

    /**
     * 设置门店id_开通商龙云吾享门店id(必填)
     */
    public void setStoreid(String storeid) {
        this.storeid = storeid;
    }

    /**
     * @return 订单id 可以标识出唯一订单的信息串--建议业务系统中的订单编号(必填)
     */
    public String getOrderid() {
        return orderid;
    }

    /**
     * 设置订单id 可以标识出唯一订单的信息串--建议业务系统中的订单编号(必填)
     */
    public void setOrderid(String orderid) {
        this.orderid = orderid;
    }

    /**
     * @return 价格(必填)
     */
    public Double getMoney() {
        return money;
    }

    /**
     * 设置价格(必填)
     */
    public void setMoney(Double money) {
        this.money = money;
    }

    /**
     * @return 订单商品列表(必填)
     */
    public List<MultiplePayOrderItem> getItems() {
        return items;
    }

    /**
     * 设置订单商品列表(必填)
     */
    public void setItems(List<MultiplePayOrderItem> items) {
        this.items = items;
    }

    /**
     * @return 验证必填字段的集合
     */
    @Override
    List<String> requiredFieldList() {
        return requiredList;
    }

    /**
     * @return 验证有效值的字段集合
     */
    @Override
    Map<String, List<Object>> valueValidityMap() {
        return null;
    }
    
    /**
     * 字符串格式化
     */
//    @Override
//    public String toString() {
//        StringBuffer strbuf = new StringBuffer("");
//        for (MultiplePayOrderItem orderItem : items) {
//            strbuf.append(orderItem.toString()).append(",");
//        }
//        String orderItemsStr = "[";
//        if (strbuf.length() > 0) {
//            orderItemsStr += strbuf.substring(0, strbuf.length() - 1);
//        }
//        orderItemsStr += "]";
//        return String.format("{\"dismoney\":%.2f, \"tablenum\":\"%s\", \"storeid\":\"%s\", \"orderid\":\"%s\", \"money\":%.2f, \"items\":%s}", 
//                dismoney, tablenum, storeid, orderid, money, orderItemsStr);
//    }
}
